package com.jic.weamop.weBankAMOP.common.constants;

/**
 * 操作结果码
 *
 * @author v_wbgyang
 */
public enum ResultEnum {
    /**
     * 成功码
     */
    SUCCESS(0, "成功"),
    /**
     * 程序异常
     */
    SYSTEM_ERROR(1000, "系统异常"),
    /**
     * 超时异常
     */
    SYSTEM_TIME_OUT(1001, "系统超时"),

    REQUESTARG_ISNULL(1002, "请求参数为空"),
    REQUESTARG_LENGTH_ERROR(1003, "请求参数长度不对"),
    REQUESTARG_WRONG(1004, "请求参数错误"),

    /**
     * 未映射的错误码
     */
    OTHER_ERROR(100000, "其他错误"),

    /**
     * 商户已经存在
     */
    MERCHANT_EXISTS(100101, "商户已经存在"),
    /**
     * 商户不存在
     */
    MERCHANT_NOT_EXISTS(100102, "商户不存在"),

    /**
     * 插件已经存在
     */
    PLUGIN_EXISTS(100201, "插件不存在"),

    /**
     * 插件不存在
     */
    PLUGIN_NOT_EXISTS(100202, "插件不存在"),

    /**
     * 活动已经存在
     */
    ACTIVITY_EXISTS(100301, "活动已经存在"),

    /**
     * 活动不存在
     */
    ACTIVITY_NOT_EXISTS(100302, "活动不存在"),

    /**
     * 交易已经存在
     */
    TRANS_EXISTS(100401, "交易已经存在"),

    /**
     * 交易不存在
     */
    TRANS_NOT_EXISTS(100402, "交易不存在"),;
    /**
     * 状态编码
     */
    private int code;
    /**
     * 状态描述
     */
    private String codeDesc;

    ResultEnum(int code, String codeDesc) {
        this.code = code;
        this.codeDesc = codeDesc;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getCodeDesc() {
        return codeDesc;
    }

    public void setCodeDesc(String codeDesc) {
        this.codeDesc = codeDesc;
    }

    /**
     * 根据code找到对应的枚举对象
     *
     * @param code
     * @return
     */
    public static ResultEnum getResultEnumByCode(int code) {
        ResultEnum[] values = ResultEnum.values();
        for (ResultEnum resultEnum : values) {
            if (resultEnum.getCode() == code) {
                return resultEnum;
            }
        }
        return null;
    }


}
